#include <iostream>
using namespace std;
// 141.环形链表
// 给你一个链表的头节点 head ，判断链表中是否有环。
// Definition for singly-linked list.
struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x): val(x), next(nullptr) {}
};

class Solution {
public:
    bool hasCycle(ListNode *head) {
        ListNode* slow, *fast;
        slow = fast = head;
        while(fast != nullptr && fast->next != nullptr) {
            fast = fast->next->next;
            slow = slow->next;
            if(slow == fast)
                return true;
        }
        return false;
    }
};
int main() {
    // 给定链表 3->2->0->-4->2 和 k = 2，返回链表 4->5
    ListNode* head1 = nullptr, *pre = nullptr;

    bool flag = Solution().hasCycle(head1);

    return 0;
}
